<form novalidate [formGroup]="form" (ngSubmit)="submitForm(form)">
  <div class="form-group" *ngFor="let control of form.productControls">
      <label>{{control.label}}</label>
      <input class="form-control" 
          [(ngModel)]="newProduct[control.modelProperty]"
          name="{{control.modelProperty}}"
          formControlName="{{control.modelProperty}}" />
      <ul class="text-danger list-unstyled"
              *ngIf="(formSubmitted || control.dirty) && !control.valid">
          <li *ngFor="let error of control.getValidationMessages()">
              {{error}}
          </li>
      </ul>
  </div>
  <button class="btn btn-primary" type="submit"
      [disabled]="formSubmitted && !form.valid"
      [class.btn-secondary]="formSubmitted && !form.valid">
          Create
  </button>
</form>
<div class="bg-info text-white m-2 p-2">
  View Child Value: <span paDisplayValue></span>
</div>
<div class="bg-info text-white m-2 p-2">
  Content Child Value: <ng-content></ng-content>
</div>
